// 体重记录类型
export interface WeightRecord {
  id?: number;
  weight: number;
  record_time: Date;
  record_type: 'morning' | 'evening' | 'anytime';
  note?: string;
  created_at?: Date;
  updated_at?: Date;
}

// K线数据类型
export interface KLineData {
  date: string; // 日期
  open: number; // 开盘价（当日最早体重）
  high: number; // 最高价（当日最重）
  low: number;  // 最低价（当日最轻）
  close: number; // 收盘价（当日最晚体重）
  volume: number; // 成交量（记录次数）
}

// 运动记录类型
export interface ExerciseRecord {
  id?: number;
  date: Date;
  duration: number; // 分钟
  type?: string;
  calories?: number;
  note?: string;
  created_at?: Date;
  updated_at?: Date;
}

// 减重目标类型
export interface WeightGoal {
  id?: number;
  target_weight: number;
  start_date: Date;
  target_date?: Date;
  is_active: boolean;
  created_at?: Date;
}

// 指标数据类型
export interface IndicatorData {
  date: string;
  weight_change_rate: number; // 减重速度（变化率）
  exercise_time_rate: number; // 运动时长率
  target_completion_rate: number; // 目标完成率
  weight_volatility: number; // 体重波动指数
  bmi: number; // BMI
  consecutive_days: number; // 连续记录天数
  highest_weight?: number; // 历史最高体重
  lowest_weight?: number; // 历史最低体重
}

// API响应类型
export interface ApiResponse<T = any> {
  success: boolean;
  data?: T;
  message?: string;
  error?: string;
}

// 查询参数类型
export interface KLineQuery {
  period: 'day' | 'week' | 'month' | 'year';
  start_date?: string;
  end_date?: string;
  limit?: number;
}
